home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection 1998 Fall: Game Toolkit / Disc.iso / SDKs / QuickTime Mac / AIncludes / GXPrinterDrivers.a < prev    next >
Encoding:
Text File  |  1998-04-09  |  36.1 KB  |  833 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        GXPrinterDrivers.a
  3. ;
  4. ;    Contains:    This file defines data types and API functions for printer driver development.
  5. ;
  6. ;    Version:    Technology:    Quickdraw GX 1.1
  7. ;                Release:    QuickTime 3.0
  8. ;
  9. ;    Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__GXPRINTERDRIVERS__') = 'UNDEFINED' THEN
  19. __GXPRINTERDRIVERS__ SET 1
  20.  
  21.     IF &TYPE('__SCALERSTREAMTYPES__') = 'UNDEFINED' THEN
  22.     include 'ScalerStreamTypes.a'
  23.     ENDIF
  24.     IF &TYPE('__GXMESSAGES__') = 'UNDEFINED' THEN
  25.     include 'GXMessages.a'
  26.     ENDIF
  27.     IF &TYPE('__PRINTING__') = 'UNDEFINED' THEN
  28.     include 'Printing.a'
  29.     ENDIF
  30.     IF &TYPE('__GXPRINTING__') = 'UNDEFINED' THEN
  31.     include 'GXPrinting.a'
  32.     ENDIF
  33.  
  34. ;  ------------------------------------------------------------------------------
  35. ;
  36. ;                        Desktop Printer Constants and Types
  37. ;
  38. ;-------------------------------------------------------------------------------- 
  39.  
  40. ;  Manual feed alert preferences structure for gxManualFeedAlertPrefsType desktop printer resource 
  41. gxManualFeedAlertPrefs    RECORD 0
  42. alertFlags                 ds.l    1                ; offset: $0 (0)        ;     Flags--first word is for driver's private use, the rest is predefined. 
  43. sizeof                     EQU *                    ; size:   $4 (4)
  44.                         ENDR
  45. ; typedef struct gxManualFeedAlertPrefs * gxManualFeedAlertPrefsPtr
  46.  
  47. ; typedef gxManualFeedAlertPrefsPtr *    gxManualFeedAlertPrefsHdl
  48.  
  49. ;  Constants for the alertFlags field of gxManualFeedAlertPrefs.
  50.  
  51. gxShowAlerts                    EQU        $00000001            ; Show alerts for this desktop printer. 
  52. gxAlertOnPaperChange            EQU        $00000002            ; …only if the papertype changes. 
  53.  
  54. gxDefaultMFeedAlertSettings        EQU        $00000003
  55.  
  56. ;  Driver output settings structure for desktop printer gxDriverOutputType resource 
  57. gxDriverOutputSettings    RECORD 0
  58. driverflags                 ds.l    1                ; offset: $0 (0)        ;     Flags -- for use by driver. 
  59. outputSettings             ds.l    1                ; offset: $4 (4)        ;     Flags -- predefined. 
  60. sizeof                     EQU *                    ; size:   $8 (8)
  61.                         ENDR
  62. ; typedef struct gxDriverOutputSettings * gxDriverOutputSettingsPtr
  63.  
  64. ; typedef gxDriverOutputSettingsPtr *    gxDriverOutputSettingsHdl
  65.  
  66. ;  Constants for the outputSettings field of gxDriverOutputSettings. 
  67.  
  68. gxCanConfigureTrays                EQU        $00000001            ; Desktop printer represents a device with a paper feed. 
  69. ;  ------------------------------------------------------------------------------
  70. ;
  71. ;                        Printing Driver Constants and Types
  72. ;
  73. ;-------------------------------------------------------------------------------- 
  74.  
  75.  
  76. gxInputTraysMenuItem            EQU        -1                    ; Menu item number for "Input Trays..." 
  77.  
  78. ;  Buffering and IO preferences-- this structure mirrors the 'iobm' resource 
  79. gxIOPrefsRec            RECORD 0
  80. communicationsOptions     ds.l    1                ; offset: $0 (0)        ;  Standard or nonstandard I/O? 
  81. numBuffers                 ds.l    1                ; offset: $4 (4)        ;  Requested number of buffers for QDGX to create 
  82. bufferSize                 ds.l    1                ; offset: $8 (8)        ;  The size of each buffer 
  83. numReqBlocks             ds.l    1                ; offset: $C (12)        ;  The number of async I/O request blocks which will be needed 
  84. openCloseTimeout         ds.l    1                ; offset: $10 (16)        ;  The open/close timeout (in ticks) 
  85. readWriteTimeout         ds.l    1                ; offset: $14 (20)        ;  The read/write timeout (in ticks) 
  86. sizeof                     EQU *                    ; size:   $18 (24)
  87.                         ENDR
  88. ; typedef struct gxIOPrefsRec *            gxIOPrefsPtr
  89.  
  90. ; typedef gxIOPrefsPtr *                gxIOPrefsHdl
  91.  
  92. ;  Constants for the communicationsOptions field of IOPrefsRec. 
  93.  
  94. gxUseCustomIO                    EQU        $00000001            ; Driver uses a non-standard IO mechanism 
  95.  
  96. ;  Information about writing to a file 
  97. gxPrintDestinationRec    RECORD 0
  98. printToFile                 ds.b    1                ; offset: $0 (0)        ;  True if output is to go to a file 
  99. padByte                     ds.b    1                ; offset: $1 (1)
  100. fSpec                     ds        FSSpec            ; offset: $2 (2)        ;  If going to a file, the FSSpec for the file 
  101. includeFonts             ds.b    1                ; offset: $48 (72)        ;  True if fonts are to be included 
  102. pad2                     ds.b    1                ; offset: $49 (73)
  103. fileFormat                 ds        Str31            ; offset: $4A (74)        ;  Format to write file 
  104. sizeof                     EQU *                    ; size:   $6A (106)
  105.                         ENDR
  106. ; typedef struct gxPrintDestinationRec * gxPrintDestinationPtr
  107.  
  108. ; typedef gxPrintDestinationPtr *        gxPrintDestinationHdl
  109.  
  110. ;  This structure is the content of each cell in the standard PACK LDEF 
  111. gxPortListRec            RECORD 0
  112. firstMarker                 ds.b    1                ; offset: $0 (0)        ;  Markers to indicate icon or non-icon version 
  113. secondMarker             ds.b    1                ; offset: $1 (1)        ;  if these are ≈ and ≈, then the cell is an icon cell. 
  114. ;  Otherwise, it is assumed to be a standard text LDEF 
  115. ;  cell 
  116. iconSuiteHandle             ds.l    1                ; offset: $2 (2)        ;  The icon suite to draw for this cell 
  117. outputDriverName         ds.l    1                ; offset: $6 (6)        ;  Handle to the output driver name (for serial) 
  118. inputDriverName             ds.l    1                ; offset: $A (10)        ;  Handle to the input driver name (for serial) 
  119. iconName                 ds        Str255            ; offset: $E (14)        ;  Name to draw under the icon 
  120. sizeof                     EQU *                    ; size:   $10E (270)
  121.                         ENDR
  122. ; typedef struct gxPortListRec *        gxPortListPtr
  123.  
  124. ;  ------------------------------------------------------------------------------
  125. ;
  126. ;                        Printing Driver Constants for resources in the desktop printer
  127. ;
  128. ;-------------------------------------------------------------------------------- 
  129.  
  130.  
  131. gxDeviceCommunicationsID        EQU        0
  132.  
  133. ;  ----------------------------------• 'prod' •---------------------------------- 
  134. ;      For PostScript devices, the device and version names of the device.
  135. ;      (0) product name is of type PString
  136. ;      (1) version is of type PString
  137. ;      (2) revision is of type PString
  138. ;      (3) vm available is of type long
  139. ;      (4) font stream type is of type scalerStreamTypeFlag
  140. ;      (5) language level is of type long
  141. ;
  142.  
  143.  
  144.  
  145. gxPostscriptProductInfoType        EQU        'prod'
  146. gxPostscriptProductNameID        EQU        0
  147. gxPostscriptVersionID            EQU        1
  148. gxPostscriptRevisionID            EQU        2
  149. gxPostscriptVMAvailableID        EQU        3
  150. gxPostscriptFontStreamTypeID    EQU        4
  151. gxPostscriptLanguageLevelID        EQU        5
  152.  
  153. ;  PPD support definitions
  154.  
  155. gxPPDInformationTag                EQU        'ppda'                ; tag used for job collection
  156. gxPPDInformationTagID            EQU        -28672                ; ID for job collection tag
  157.  
  158. gxPPDInformationType            EQU        'ppda'                ; rsource type as stored in desktop printer
  159. gxPPDInformationResID            EQU        -27648                ; ID of rsource stored in desktop printer
  160. gxPPDFileInfoRec        RECORD 0
  161. dataOffset                 ds.l    1                ; offset: $0 (0)        ;  byte offset to beginning of ppd data
  162. dataLength                 ds.l    1                ; offset: $4 (4)        ;  length of ppd data
  163. reserved                 ds.l    1                ; offset: $8 (8)        ;  reserved
  164. aliasRecordSize             ds.l    1                ; offset: $C (12)        ;  size of alias record below
  165. ppdAlias                 ds.b    1                ; offset: $10 (16) <-- really an array of length one ;  the actual alias record data
  166.                          ORG 18
  167. sizeof                     EQU *                    ; size:   $12 (18)
  168.                         ENDR
  169. ; typedef struct gxPPDFileInfoRec *        gxPPDFileInfoPtr
  170.  
  171. ; typedef gxPPDFileInfoPtr *            gxPPDFileInfoHdl
  172.  
  173. ;  ------------------------------------------------------------------------------
  174. ;
  175. ;                        Printing Driver Constants for status alerts
  176. ;
  177. ;-------------------------------------------------------------------------------- 
  178.  
  179.  
  180. ;  Structure passed in statusBuffer of StatusRecord for manual feed alert 
  181. gxManualFeedRecord        RECORD 0
  182. canAutoFeed                 ds.b    1                ; offset: $0 (0)        ;  True if driver can switch to auto feed 
  183. pad1                     ds.b    1                ; offset: $1 (1)
  184. paperTypeName             ds        Str31            ; offset: $2 (2)        ;  Name of paperType to feed manually 
  185. sizeof                     EQU *                    ; size:   $22 (34)
  186.                         ENDR
  187.  
  188. ;  Structure passed in statusBuffer of StatusRecord for out of paper alert 
  189. gxOutOfPaperRecord        RECORD 0
  190. paperTypeName             ds        Str31            ; offset: $0 (0)        ;  Name of printing document 
  191. sizeof                     EQU *                    ; size:   $20 (32)
  192.                         ENDR
  193.  
  194. ;  The DITL id for the auto feed button in the manual feed alert 
  195.  
  196. gxAutoFeedButtonId                EQU        3
  197.  
  198. ;  Status resource id for the alerts 
  199.  
  200. gxUnivAlertStatusResourceId        EQU        -28508
  201.  
  202. ;  Status resource indices for alerts 
  203.  
  204. gxUnivSetTrayIndex                EQU        0
  205. gxUnivManualFeedIndex            EQU        2
  206. gxUnivFailToPrintIndex            EQU        3
  207. gxUnivPaperJamIndex                EQU        4
  208. gxUnivOutOfPaperIndex            EQU        5
  209. gxUnivNoPaperTrayIndex            EQU        6
  210. gxUnivPrinterReadyIndex            EQU        7
  211. gxUnivAlertBeforeIndex            EQU        9
  212. gxUnivAlertAfterIndex            EQU        10
  213.  
  214. ;  Allocation sizes for status buffers needed for automatic alerts 
  215.  
  216. gxDefaultStatusBufferSize        EQU        10
  217. gxManualFeedStatusBufferSize    EQU        34
  218. gxOutOfPaperStatusBufferSize    EQU        42
  219.  
  220. ;  ------------------------------------------------------------------------------
  221. ;
  222. ;                                Old Application Support
  223. ;
  224. ;-------------------------------------------------------------------------------- 
  225.  
  226. ;  The format of a 'cust' resource  
  227. gxCustomizationRec        RECORD 0
  228. horizontalResolution     ds.w    1                ; offset: $0 (0)        ;  Horizontal res (integral part) 
  229. verticalResolution         ds.w    1                ; offset: $2 (2)        ;  Vertical res (integral part) 
  230. upDriverType             ds.w    1                ; offset: $4 (4)        ;  "upDriver" emulation type 
  231. patternStretch             ds        Point            ; offset: $6 (6)        ;  Pattern stretch factor 
  232. translatorSettings         ds.w    1                ; offset: $A (10)        ;  Translator settings to use 
  233. sizeof                     EQU *                    ; size:   $C (12)
  234.                         ENDR
  235. ; typedef struct gxCustomizationRec *    gxCustomizationPtr
  236.  
  237. ; typedef gxCustomizationPtr *            gxCustomizationHdl
  238.  
  239. ;  The format of a 'resl' resource 
  240. gxResolutionRec            RECORD 0
  241. rangeType                 ds.w    1                ; offset: $0 (0)        ;  Always 1 
  242. xMinimumResolution         ds.w    1                ; offset: $2 (2)        ;  Min X resolution available 
  243. xMaximumResolution         ds.w    1                ; offset: $4 (4)        ;  Max X resolution available 
  244. yMinimumResolution         ds.w    1                ; offset: $6 (6)        ;  Min Y resolution available 
  245. yMaximumResolution         ds.w    1                ; offset: $8 (8)        ;  Max Y resolution available 
  246. resolutionCount             ds.w    1                ; offset: $A (10)        ;  Number of resolutions 
  247. resolutions                 ds        Point            ; offset: $C (12) <-- really an array of length one ;  Array of resolutions 
  248. sizeof                     EQU *                    ; size:   $10 (16)
  249.                         ENDR
  250. ; typedef struct gxResolutionRec *        gxResolutionPtr
  251.  
  252. ; typedef gxResolutionPtr *                gxResolutionHdl
  253.  
  254. ;
  255. ;        Constants for the "universal" print record.
  256. ;
  257. ;
  258.  
  259. ;  Constant for version number in universal print record 
  260.  
  261. gxPrintRecordVersion            EQU        8
  262. ;  Constants for feed field in universal print record 
  263.  
  264. gxAutoFeed                        EQU        0
  265. gxManualFeed                    EQU        1
  266. ;  Constants for options field in universal print record 
  267.  
  268. gxPreciseBitmap                    EQU        $0001                ; Tall adjusted (IW), precise bitmap (LW, SC) 
  269. gxBiggerPages                    EQU        $0002                ; No gaps (IW), larger print area (LW) 
  270. gxGraphicSmoothing                EQU        $0004                ; Graphic smoothing (LW) 
  271. gxTextSmoothing                    EQU        $0008                ; Text smoothing (SC) 
  272. gxFontSubstitution                EQU        $0010                ; Font substitution 
  273. gxInvertPage                    EQU        $0020                ; B/W invert image 
  274. gxFlipPageHoriz                    EQU        $0040                ; Flip horizontal 
  275. gxFlipPageVert                    EQU        $0080                ; Flip vertical 
  276. gxColorMode                        EQU        $0100                ; Color printing 
  277. gxBidirectional                    EQU        $0200                ; Bidirectional printing 
  278. gxUserFlag0                        EQU        $0400                ; User flag 0 
  279. gxUserFlag1                        EQU        $0800                ; User flag 1 
  280. gxUserFlag2                        EQU        $1000                ; User flag 2 
  281. gxReservedFlag0                    EQU        $2000                ; Reserved flag 0 
  282. gxReservedFlag1                    EQU        $4000                ; Reserved flag 1 
  283. gxReservedFlag2                    EQU        $8000                ; Reserved flag 2 
  284. ;  Constants for orientation field in universal print record 
  285.  
  286. gxPortraitOrientation            EQU        0
  287. gxLandscapeOrientation            EQU        1
  288. gxAltPortraitOrientation        EQU        2
  289. gxAltLandscapeOrientation        EQU        3
  290. ;  Constants for qualityMode field in universal print record 
  291.  
  292. gxBestQuality                    EQU        0
  293. gxFasterQuality                    EQU        1
  294. gxDraftQuality                    EQU        2
  295. ;  Constants for firstTray and remainingTray fields in universal print record 
  296.  
  297. gxFirstTray                        EQU        0
  298. gxSecondTray                    EQU        1
  299. gxThirdTray                        EQU        2
  300. ;  Constants for coverPage field in universal print record 
  301.  
  302. gxNoCoverPage                    EQU        0
  303. gxFirstPageCover                EQU        1
  304. gxLastPageCover                    EQU        2
  305. ;  Constants for headMotion field in universal print record 
  306.  
  307. gxUnidirectionalMotion            EQU        0
  308. gxBidirectionalMotion            EQU        1
  309. ;  Constants for saveFile field in universal print record 
  310.  
  311. gxNoFile                        EQU        0
  312. gxPostScriptFile                EQU        1
  313.  
  314. ;  The format of the "universal" print record 
  315. gxUniversalPrintRecord    RECORD 0
  316. printRecordVersion         ds.w    1                ; offset: $0 (0)        ;  Print record version 
  317. ;  prInfo subrecord 
  318. appDev                     ds.w    1                ; offset: $2 (2)        ;  Device kind, always 0 
  319. appVRes                     ds.w    1                ; offset: $4 (4)        ;  Application vertical resolution 
  320. appHRes                     ds.w    1                ; offset: $6 (6)        ;  Application horizontal resolution 
  321. appPage                     ds        Rect            ; offset: $8 (8)        ;  Page size, in application resolution 
  322. appPaper                 ds        Rect            ; offset: $10 (16)        ;  Paper rectangle [offset from rPage] 
  323. ;  prStl subrecord 
  324. devType                     ds.w    1                ; offset: $18 (24)        ;  Device type, always 0xA900 (was wDev) 
  325. pageV                     ds.w    1                ; offset: $1A (26)        ;  Page height in 120ths of an inch 
  326. pageH                     ds.w    1                ; offset: $1C (28)        ;  Page width in 120ths of an inch 
  327. fillByte                 ds.b    1                ; offset: $1E (30)        ;  Page calculation mode 
  328. feed                     ds.b    1                ; offset: $1F (31)        ;  Feed mode 
  329. ;  prInfoPT subrecord 
  330. devKind                     ds.w    1                ; offset: $20 (32)        ;  Device kind, always 0 
  331. devVRes                     ds.w    1                ; offset: $22 (34)        ;  Device vertical resolution 
  332. devHRes                     ds.w    1                ; offset: $24 (36)        ;  Device horizontal resolution 
  333. devPage                     ds        Rect            ; offset: $26 (38)        ;  Device page size 
  334. ;  prXInfo subrecord 
  335. actualCopies             ds.w    1                ; offset: $2E (46)        ;  Actual number of copies for this job 
  336. options                     ds.w    1                ; offset: $30 (48)        ;  Options for this device 
  337. reduction                 ds.w    1                ; offset: $32 (50)        ;  Reduce/enlarge factor 
  338. orientation                 ds.b    1                ; offset: $34 (52)        ;  Orientation of paper ( 0=portrait, 1=landscape ) 
  339. ;  Clusters and PopUps 
  340. qualityMode                 ds.b    1                ; offset: $35 (53)        ;  Quality mode 
  341. coverPage                 ds.b    1                ; offset: $36 (54)        ;  Cover page 
  342. firstTray                 ds.b    1                ; offset: $37 (55)        ;  First feed tray 
  343. remainingTray             ds.b    1                ; offset: $38 (56)        ;  Remaining feed tray 
  344. headMotion                 ds.b    1                ; offset: $39 (57)        ;  Head motion 
  345. saveFile                 ds.b    1                ; offset: $3A (58)        ;  Save file 
  346. userCluster1             ds.b    1                ; offset: $3B (59)        ;  Three clusters left over 
  347. userCluster2             ds.b    1                ; offset: $3C (60)
  348. userCluster3             ds.b    1                ; offset: $3D (61)
  349. ;  prJob subrecord 
  350. firstPage                 ds.w    1                ; offset: $3E (62)        ;  First page 
  351. lastPage                 ds.w    1                ; offset: $40 (64)        ;  Last page 
  352. copies                     ds.w    1                ; offset: $42 (66)        ;  Number of copies, always 1 
  353. reserved1                 ds.b    1                ; offset: $44 (68)        ;  Always true, unused 
  354. reserved2                 ds.b    1                ; offset: $45 (69)        ;  Always true, unused 
  355. pIdleProc                 ds.l    1                ; offset: $46 (70)        ;  Idle proc 
  356. pFileName                 ds.l    1                ; offset: $4A (74)        ;  Spool file name pointer 
  357. fileVol                     ds.w    1                ; offset: $4E (78)        ;  Spool file vRefNum 
  358. fileVers                 ds.b    1                ; offset: $50 (80)        ;  File version, must be 0 
  359. reserved3                 ds.b    1                ; offset: $51 (81)        ;  Always 0 
  360. printX                     ds.w    19                ; offset: $52 (82)        ;  Internal use 
  361. sizeof                     EQU *                    ; size:   $78 (120)
  362.                         ENDR
  363. ; typedef struct gxUniversalPrintRecord * gxUniversalPrintRecordPtr
  364.  
  365. ; typedef gxUniversalPrintRecordPtr *    gxUniversalPrintRecordHdl
  366.  
  367.  
  368. ;  ------------------------------------------------------------------------------
  369. ;
  370. ;                            Compatibility Printing Messages
  371. ;
  372. ;-------------------------------------------------------------------------------- 
  373.  
  374.  
  375. ;  ------------------------------------------------------------------------------
  376. ;
  377. ;                        Raster Driver Contants and Types
  378. ;
  379. ;-------------------------------------------------------------------------------- 
  380.  
  381. ; typedef long                             gxRasterPlaneOptions
  382.  
  383. ;  Input structure for setting up the offscreen 
  384. gxPlaneSetupRec            RECORD 0
  385. planeOptions             ds.l    1                ; offset: $0 (0)        ;  Options for the offscreen package 
  386. planeHalftone             ds        gxHalftone        ; offset: $4 (4)        ;  OPTIONAL: halftone structure for this plane 
  387. planeSpace                 ds.l    1                ; offset: $38 (56)        ;  OPTIONAL: noSpace will get the graphics default 
  388. planeSet                 ds.l    1                ; offset: $3C (60)        ;  OPTIONAL: NIL gets the default 
  389. planeProfile             ds.l    1                ; offset: $40 (64)        ;  OPTIONAL: NIL gets no matching 
  390. sizeof                     EQU *                    ; size:   $44 (68)
  391.                         ENDR
  392. ;  Constants for planeOptions field in gxPlaneSetupRec 
  393.  
  394. gxDefaultOffscreen                EQU        $00000000            ; Default value - bits are allocated for the client, halftoning takes place 
  395. gxDontSetHalftone                EQU        $00000001            ; Don't call SetViewPortHalftone 
  396. gxDotTypeIsDitherLevel            EQU        $00000002            ; Call SetViewPortDither using the dotType as the level 
  397.  
  398. gxOffscreenSetupRec        RECORD 0
  399. width                     ds.w    1                ; offset: $0 (0)        ;  Width in pixels 
  400. minHeight                 ds.w    1                ; offset: $2 (2)        ;  Minimum height in pixels - actual height returned here 
  401. maxHeight                 ds.w    1                ; offset: $4 (4)        ;  Maximum height in pixels 
  402. ramPercentage             ds.l    1                ; offset: $6 (6)        ;  Maximum percentage of RAM to take 
  403. ramSlop                     ds.l    1                ; offset: $A (10)        ;  Amount of RAM to be sure to leave 
  404. depth                     ds.w    1                ; offset: $E (14)        ;  Depths in bits of each plane 
  405. vpMapping                 ds        gxMapping        ; offset: $10 (16)        ;  Mapping to assign to offscreen viewPorts 
  406. vdMapping                 ds        gxMapping        ; offset: $34 (52)        ;  Mapping to assign to offscreen viewDevices 
  407. planes                     ds.w    1                ; offset: $58 (88)        ;  Number of planes to allocate of depth bits each (can be more than 4) 
  408. planeSetup                 ds.b    4 * gxPlaneSetupRec.sizeof ; offset: $5A (90) ;  Parameters for each plane, 4 is provided because it is most handy for writers of devices 
  409. sizeof                     EQU *                    ; size:   $16A (362)
  410.                         ENDR
  411.  
  412. ;  The format of one plane in the offscreen planar area 
  413. gxOffscreenPlaneRec        RECORD 0
  414. theViewPort                 ds.l    1                ; offset: $0 (0)        ;  viewPort for the offscreen 
  415. theDevice                 ds.l    1                ; offset: $4 (4)        ;  viewDevice for the offscreen 
  416. theViewGroup             ds.l    1                ; offset: $8 (8)        ;  The viewGroup that they share 
  417. theBitmap                 ds.l    1                ; offset: $C (12)        ;  The offscreen bitmap shape 
  418. theBits                     ds        gxBitmap        ; offset: $10 (16)        ;  The bits of the offscreen 
  419. sizeof                     EQU *                    ; size:   $30 (48)
  420.                         ENDR
  421.  
  422. ;  The format of an entire offscreen area 
  423. gxOffscreenRec            RECORD 0
  424. numberOfPlanes             ds.w    1                ; offset: $0 (0)        ;  Number of planes we have 
  425. offscreenStorage         ds.l    1                ; offset: $2 (2)        ;  Handle containing the bitmaps image data 
  426. thePlanes                 ds        gxOffscreenPlaneRec ; offset: $6 (6) <-- really an array of length one ;  Planes to draw in 
  427. sizeof                     EQU *                    ; size:   $36 (54)
  428.                         ENDR
  429. ; typedef struct gxOffscreenRec *        gxOffscreenPtr
  430.  
  431. ; typedef gxOffscreenPtr *                gxOffscreenHdl
  432.  
  433. ; typedef long                             gxRasterRenderOptions
  434.  
  435. ;  Structure that mirrors 'rdip' resource. 
  436. gxRasterPrefsRec        RECORD 0
  437. renderOptions             ds.l    1                ; offset: $0 (0)        ;  Options for the raster imaging system 
  438. hImageRes                 ds.l    1                ; offset: $4 (4)        ;  Horizontal resolution to image at 
  439. vImageRes                 ds.l    1                ; offset: $8 (8)        ;  Vertical resolution to image at 
  440. minBandSize                 ds.w    1                ; offset: $C (12)        ;  Minimum band size to use (in pixels) 
  441. maxBandSize                 ds.w    1                ; offset: $E (14)        ;  Maximum band size to use (in pixels), 0 == entire page 
  442. ramPercentage             ds.l    1                ; offset: $10 (16)        ;  Maximum percentage of RAM to take 
  443. ramSlop                     ds.l    1                ; offset: $14 (20)        ;  Amount of RAM to be sure to leave 
  444. depth                     ds.w    1                ; offset: $18 (24)        ;  Depth in pixels (PER PLANE!) 
  445. numPlanes                 ds.w    1                ; offset: $1A (26)        ;  Number of planes to render 
  446. planeSetup                 ds        gxPlaneSetupRec ; offset: $1C (28) <-- really an array of length one ;  One for each plane 
  447. sizeof                     EQU *                    ; size:   $60 (96)
  448.                         ENDR
  449. ;  Constants for renderOptions field in gxRasterPrefsRec. 
  450.  
  451. gxDefaultRaster                    EQU        $00000000            ; Default raster options 
  452. gxDontResolveTransferModes        EQU        $00000001            ; 0=Resolve, 1=Don't Resolve 
  453. gxRenderInReverse                EQU        $00000002            ; Traverse image in reverse order 
  454. gxOnePlaneAtATime                EQU        $00000004            ; Render each plane separately 
  455. gxSendAllBands                    EQU        $00000008            ; Send even empty bands 
  456. ; typedef struct gxRasterPrefsRec *        gxRasterPrefsPtr
  457.  
  458. ; typedef gxRasterPrefsPtr *            gxRasterPrefsHdl
  459.  
  460. ; typedef long                             gxRasterPackageOptions
  461.  
  462. ;  Structure that mirrors 'rpck' resource. 
  463. gxRasterPackageRec        RECORD 0
  464. bufferSize                 ds.l    1                ; offset: $0 (0)        ;  Buffer size for packaging (>= maximum head pass size) 
  465. colorPasses                 ds.w    1                ; offset: $4 (4)        ;  1 (b/w) or 4 (CMYK) is typical 
  466. headHeight                 ds.w    1                ; offset: $6 (6)        ;  Printhead height in pixels 
  467. numberPasses             ds.w    1                ; offset: $8 (8)        ;  Number of head passes it takes to == iHeadHeight 
  468. passOffset                 ds.w    1                ; offset: $A (10)        ;  Offset between passes, in pixels 
  469. packageOptions             ds.l    1                ; offset: $C (12)        ;  Packaging options 
  470. sizeof                     EQU *                    ; size:   $10 (16)
  471.                         ENDR
  472. ; typedef struct gxRasterPackageRec *    gxRasterPackagePtr
  473.  
  474. ; typedef gxRasterPackagePtr *            gxRasterPackageHdl
  475.  
  476. ;  Constants for packageOptions field in gxRasterPackageRec. 
  477.  
  478. gxSendAllColors                    EQU        $00000001            ; Send even clean bands through 
  479. gxInterlaceColor                EQU        $00000002            ; Ribbon contamination is a concern 
  480. gxOverlayColor                    EQU        $00000004            ; Color printer without a ribbon problem 
  481. gxUseColor                        EQU        $00000006            ; This is a color printer 
  482.  
  483. ;  Structure for RasterPackageBitmap message 
  484. gxRasterPackageBitmapRec RECORD 0
  485. bitmapToPackage             ds.l    1                ; offset: $0 (0)        ;  Bitmap containing the data to package 
  486. startRaster                 ds.w    1                ; offset: $4 (4)        ;  Raster to begin the packaging from 
  487. colorBand                 ds.w    1                ; offset: $6 (6)        ;  For which color pass this is a packaging request 
  488. isBandDirty                 ds.b    1                ; offset: $8 (8)        ;  Whether there are any dirty bits in this band 
  489. padByte                     ds.b    1                ; offset: $9 (9)
  490. dirtyRect                 ds        Rect            ; offset: $A (10)        ;  Which bits are dirty 
  491. sizeof                     EQU *                    ; size:   $12 (18)
  492.                         ENDR
  493.  
  494. ;  Structure of number record in gxRasterPackageControlsRec 
  495. gxStandardNumberRec        RECORD 0
  496. numberType                 ds.w    1                ; offset: $0 (0)        ;  Type of numberic output desired 
  497. minWidth                 ds.w    1                ; offset: $2 (2)        ;  Minimum output width of the number 
  498. padChar                     ds.b    1                ; offset: $4 (4)        ;  Pad character for numbers shorter than the minWidth 
  499. padChar2                 ds.b    1                ; offset: $5 (5)
  500. startString                 ds        Str31            ; offset: $6 (6)        ;  Prefix string 
  501. endString                 ds        Str31            ; offset: $26 (38)        ;  Postfix string 
  502. sizeof                     EQU *                    ; size:   $46 (70)
  503.                         ENDR
  504. ; typedef struct gxStandardNumberRec *    gxStandardNumberPtr
  505.  
  506. ;  Structure that mirrors 'ropt' resource 
  507. gxRasterPackageControlsRec RECORD 0
  508. startPageStringID         ds.w    1                ; offset: $0 (0)        ;  'wstr' to send to the device at start of page 
  509. formFeedStringID         ds.w    1                ; offset: $2 (2)        ;  'wstr' to send to the device to cause a form feed 
  510. forwardMax                 ds.w    1                ; offset: $4 (4)        ;  Line feed strings 
  511. forwardLineFeed             ds        gxStandardNumberRec ; offset: $6 (6)    ;  Number record for forward line feed 
  512. reverseMax                 ds.w    1                ; offset: $4C (76)        ;  Max number of reverse line feeds device can do 
  513. reverseLineFeed             ds        gxStandardNumberRec ; offset: $4E (78) ;  Number record for forward line feed 
  514. sizeof                     EQU *                    ; size:   $94 (148)
  515.                         ENDR
  516. ; typedef struct gxRasterPackageControlsRec * gxRasterPackageControlsPtr
  517.  
  518. ; typedef gxRasterPackageControlsPtr *    gxRasterPackageControlsHdl
  519.  
  520. ;  Raster imaging system imageData structure 
  521. gxRasterImageDataRec    RECORD 0
  522. renderOptions             ds.l    1                ; offset: $0 (0)        ;  Options for the raster imaging system 
  523. hImageRes                 ds.l    1                ; offset: $4 (4)        ;  horizontal resolution to image at 
  524. vImageRes                 ds.l    1                ; offset: $8 (8)        ;  vertical resolution to image at 
  525. minBandSize                 ds.w    1                ; offset: $C (12)        ;  smallest band that makes sense for this device 
  526. maxBandSize                 ds.w    1                ; offset: $E (14)        ;  biggest band that makes sense, or 0 for "full page" 
  527. pageSize                 ds        gxRectangle        ; offset: $10 (16)        ;  size of page for device 
  528. ;  Values used within the RasterDataIn message 
  529. currentYPos                 ds.w    1                ; offset: $20 (32)        ;  Current position moving down the page 
  530. packagingInfo             ds        gxRasterPackageRec ; offset: $22 (34)    ;  Raster packaging record 
  531. ;  Values used within the remaining messages 
  532. optionsValid             ds.b    1                ; offset: $32 (50)        ;  Were options specified by the driver? 
  533. padByte                     ds.b    1                ; offset: $33 (51)
  534. packageControls             ds        gxRasterPackageControlsRec ; offset: $34 (52) ;  Options for the packaging messages 
  535. theSetup                 ds        gxOffscreenSetupRec ; offset: $C8 (200) ;  setup for the offscreen code, variable length componant 
  536. sizeof                     EQU *                    ; size:   $232 (562)
  537.                         ENDR
  538. ; typedef struct gxRasterImageDataRec *    gxRasterImageDataPtr
  539.  
  540. ; typedef gxRasterImageDataPtr *        gxRasterImageDataHdl
  541.  
  542. ;  ------------------------------------------------------------------------------
  543. ;
  544. ;                                Raster Driver Imaging Messages
  545. ;
  546. ;-------------------------------------------------------------------------------- 
  547.  
  548.  
  549. ;  ------------------------------------------------------------------------------
  550. ;
  551. ;                        Vector Driver Contants and Types
  552. ;
  553. ;-------------------------------------------------------------------------------- 
  554.  
  555. ;  Vector device halftone component record 
  556. gxVHalftoneCompRec        RECORD 0
  557. angle                     ds.l    1                ; offset: $0 (0)        ;  Angle to halftone at. Must be 0, 90, 45 or 135 
  558. penIndex                 ds.l    1                ; offset: $4 (4)        ;  index of the pen to draw this component with 
  559. sizeof                     EQU *                    ; size:   $8 (8)
  560.                         ENDR
  561.  
  562. ;  Vector device halftone record 
  563. gxVHalftoneRec            RECORD 0
  564. halftoneSpace             ds.l    1                ; offset: $0 (0)
  565. halftoneComps             ds.b    4 * gxVHalftoneCompRec.sizeof ; offset: $4 (4) ;  Info for each color component 
  566. penIndexForBW             ds.l    1                ; offset: $24 (36)        ;  Pen index to draw one bit deep or black and white bitmap with 
  567. sizeof                     EQU *                    ; size:   $28 (40)
  568.                         ENDR
  569.  
  570. ;  Vector shape rendering information 
  571. ; typedef long                             gxVectorShapeOptions
  572.  
  573. gxVectorShapeDataRec    RECORD 0
  574. shapeOptions             ds.l    1                ; offset: $0 (0)        ;  Options to control shape handling 
  575. maxPolyPoints             ds.l    1                ; offset: $4 (4)        ;  Maximum number of polygon points that device can support 
  576. shapeError                 ds.l    1                ; offset: $8 (8)        ;  Defines allowed deviation from the original shape 
  577. textSize                 ds.l    1                ; offset: $C (12)        ;  Text above this size is filled; text below this size is outlined 
  578. frameSize                 ds.l    1                ; offset: $10 (16)        ;  Frame's smaller than this -> shape stroked; frame's larger -> shape is filled 
  579. sizeof                     EQU *                    ; size:   $14 (20)
  580.                         ENDR
  581.  
  582. ;  Constants for shapeOptions field in gxVectorShapeDataRec. 
  583.  
  584. gxUnidirectionalFill            EQU        $00000001            ; Generate scanlines in one direction only.  Useful for transparencies 
  585. gxAlsoOutlineFilledShape        EQU        $00000002            ; Turn on this bit to also outline solid filled shapes 
  586.  
  587. ;  Vector device rendering information 
  588. ; typedef long                             gxVectorRenderOptions
  589.  
  590. ;  Vector imaging system imageData structure 
  591. gxVectorImageDataRec    RECORD 0
  592. renderOptions             ds.l    1                ; offset: $0 (0)        ;  Options to control rendering: color sort, clipping, etc. 
  593. devRes                     ds.l    1                ; offset: $4 (4)        ;  Device resolution 
  594. devTransform             ds.l    1                ; offset: $8 (8)        ;  Mapping, clip and halftoning information for colored bitmaps 
  595. clrSet                     ds.l    1                ; offset: $C (12)        ;  Entire set of colors; usually indexed color space for pen plotters 
  596. bgColor                     ds        gxColor            ; offset: $10 (16)        ;  The background color in the color space specified by the clrSpace field 
  597. halftoneInfo             ds        gxVHalftoneRec ; offset: $20 (32)        ;  Defines halftone information for color bitmaps 
  598. hPenTable                 ds.l    1                ; offset: $48 (72)        ;  Complete list of pens along with their pen positions and thickness 
  599. pageRect                 ds        gxRectangle        ; offset: $4C (76)        ;  Page dimensions 
  600. shapeData                 ds        gxVectorShapeDataRec ; offset: $5C (92) ;  Information on how to render a shape 
  601. sizeof                     EQU *                    ; size:   $70 (112)
  602.                         ENDR
  603. ; typedef struct gxVectorImageDataRec *    gxVectorImageDataPtr
  604.  
  605. ; typedef gxVectorImageDataPtr *        gxVectorImageDataHdl
  606.  
  607. ;  Constants for renderOptions field in gxVectorImageDataRec. 
  608.  
  609. gxColorSort                        EQU        $00000001            ; Set for pen plotters 
  610. gxATransferMode                    EQU        $00000002            ; Set if transfer modes need to be resolved 
  611. gxNoOverlap                        EQU        $00000004            ; Set if non-overlapping output is desired
  612. gxAColorBitmap                    EQU        $00000008            ; Set if color bitmap output is desired 
  613. gxSortbyPenPos                    EQU        $00000010            ; Set if shapes are to be drawn in the order of the pen index 
  614.                                                             ; in the pen table. NOTE: this is not the pen position in the carousel 
  615. gxPenLessPlotter                EQU        $00000020            ; Indicates raster printer/plotter 
  616. gxCutterPlotter                    EQU        $00000040            ; Indicates cutter 
  617. gxNoBackGround                    EQU        $00000080            ; Set if shapes that map to the background color should not be sent to driver 
  618.  
  619. ;  ------------------------------------------------------------------------------
  620. ;
  621. ;                                Vector Driver Imaging Messages
  622. ;
  623. ;-------------------------------------------------------------------------------- 
  624.  
  625.  
  626. ;  ------------------------------------------------------------------------------
  627. ;
  628. ;                            PostScript Driver Contants and Types
  629. ;
  630. ;-------------------------------------------------------------------------------- 
  631.  
  632.  
  633. gxPostSynonym                    EQU        'post'
  634. ;  PostScript glyphs record 
  635. gxPrinterGlyphsRec        RECORD 0
  636. theFont                     ds.l    1                ; offset: $0 (0)        ;   ---> Font reference 
  637. nGlyphs                     ds.l    1                ; offset: $4 (4)        ;   ---> Number of glyphs in the font 
  638. platform                 ds.l    1                ; offset: $8 (8)        ;  <---  How printer font is encoded 
  639. script                     ds.l    1                ; offset: $C (12)        ;  <---  Script if platform != glyphPlatform 
  640. language                 ds.l    1                ; offset: $10 (16)        ;  <---  Language if platform != glyphPlatform 
  641. vmUsage                     ds.l    1                ; offset: $14 (20)        ;  <---  How much PostScript VM font uses 
  642. ;  Size of this array is long-alligned(nGlyphs) 
  643. glyphBits                 ds.l    1                ; offset: $18 (24) <-- really an array of length one ;  <---  Bit array of which system glyphs are in printer 
  644. sizeof                     EQU *                    ; size:   $1C (28)
  645.                         ENDR
  646.  
  647. ;  PostScript device rendering information 
  648. ; typedef long                             gxPostScriptRenderOptions
  649.  
  650. gxPostScriptImageDataRec RECORD 0
  651. languageLevel             ds.w    1                ; offset: $0 (0)        ;  PostScript language level 
  652. devCSpace                 ds.l    1                ; offset: $2 (2)        ;  The printer's color space 
  653. devCProfile                 ds.l    1                ; offset: $6 (6)        ;  The printer's color profile for matching 
  654. renderOptions             ds.l    1                ; offset: $A (10)        ;  Options for the imaging system 
  655. pathLimit                 ds.l    1                ; offset: $E (14)        ;  Maximum path size 
  656. gsaveLimit                 ds.w    1                ; offset: $12 (18)        ;  Maximum number of gsaves allowed 
  657. opStackLimit             ds.w    1                ; offset: $14 (20)        ;  Operand stack limit 
  658. fontType                 ds.l    1                ; offset: $16 (22)        ;  These are the font types that the printer supports  
  659. printerVM                 ds.l    1                ; offset: $1A (26)        ;  How much memory is in the printer 
  660. reserved0                 ds.l    1                ; offset: $1E (30)
  661. sizeof                     EQU *                    ; size:   $22 (34)
  662.                         ENDR
  663. ; typedef struct gxPostScriptImageDataRec * gxPostScriptImageDataPtr
  664.  
  665. ; typedef gxPostScriptImageDataPtr *    gxPostScriptImageDataHdl
  666.  
  667. ;  Constants for renderOptions field in gxPostScriptImageDataRec. 
  668.  
  669. gxNeedsHexOption                EQU        $00000001            ; Convert all binary data to hex 
  670. gxNeedsCommentsOption            EQU        $00000002            ; Issue PostScript comments 
  671. gxBoundingBoxesOption            EQU        $00000004            ; Calculate the values for 
  672. gxPortablePostScriptOption        EQU        $00000008            ; Generate portable PostScript 
  673. gxTextClipsToPathOption            EQU        $00000010            ; Convert all clips that are composed of text to path shapes 
  674. gxFlattenClipPathOption            EQU        $00000020            ; Convert all clips that are path shapes to polygons (helps better control point limit) 
  675. gxUseCharpath1Option            EQU        $00000040            ; (ignored if text clips are converted to paths)  When the clip is text,  
  676.                                                             ; Do it one glyph at a time, redrawing the main shape each time 
  677. gxUseLevel2ColorOption            EQU        $00000080            ; When printing to level-2 use level-2 device independent color 
  678. gxNoEPSIllegalOperators            EQU        $00000100            ; Don't use any operators prohibited by the Encapsulated PostScript File Format V3.0 
  679. gxEPSTargetOption                EQU        $00000106            ; PostScript intended for EPS Use. 
  680. gxPageIndependentPostScript        EQU        $00000200            ; Don't generate PostScript with page interdependencies 
  681.  
  682. ;  Structure for gxPostScriptGetProcSetList / gxPostScriptDownLoadProcSetList 
  683. gxProcSetListRec        RECORD 0
  684. clientid                 ds.l    1                ; offset: $0 (0)
  685. controlType                 ds.l    1                ; offset: $4 (4)        ;  The driver will call FetchTaggedData on each of these resources 
  686. controlid                 ds.w    1                ; offset: $8 (8)
  687. dataType                 ds.l    1                ; offset: $A (10)
  688. reserved0                 ds.l    1                ; offset: $E (14)
  689. sizeof                     EQU *                    ; size:   $12 (18)
  690.                         ENDR
  691. ; typedef struct gxProcSetListRec *        gxProcSetListPtr
  692.  
  693. ; typedef gxProcSetListPtr *            gxProcSetListHdl
  694.  
  695. ;  Possible results of querying printer (returned by gxPostScriptQueryPrinter message) 
  696.  
  697. gxPrinterOK                        EQU        0
  698. gxIntializePrinter                EQU        1
  699. gxFilePrinting                    EQU        2
  700. gxResetPrinter                    EQU        128
  701.  
  702. ;  ------------------------------------------------------------------------------
  703. ;
  704. ;                                PostScript Driver Imaging Messages
  705. ;
  706. ;-------------------------------------------------------------------------------- 
  707.  
  708. ;  Device control messages 
  709. ;  Device communication messages 
  710. ;  Proc set management messages 
  711. ;  Font management messages 
  712. ;  Document structuring and formatting messages 
  713. ;  Page structuring and formatting messages 
  714. ;  Shape imaging messages 
  715. ;  ------------------------------------------------------------------------------
  716. ;
  717. ;                                            Driver API Functions
  718. ;
  719. ;-------------------------------------------------------------------------------- 
  720.  
  721. ;  Constants for printer gxViewDevice bitmaps. 
  722.  
  723. gxMissingImagePointer            EQU        -4
  724. ;
  725. ; extern OSErr GXAddPrinterViewDevice(gxPrinter thePrinter, gxViewDevice theViewDevice)
  726. ;
  727.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  728.         Macro
  729.         _GXAddPrinterViewDevice
  730.             move.l              #$00020000,D0
  731.             dc.w                $ABFE
  732.         EndM
  733.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  734.         IMPORT_CFM_FUNCTION GXAddPrinterViewDevice
  735.     ENDIF
  736.  
  737. ;
  738. ; extern OSErr GXGetAvailableJobFormatModes(gxJobFormatModeTableHdl *theFormatModes)
  739. ;
  740.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  741.         Macro
  742.         _GXGetAvailableJobFormatModes
  743.             move.l              #$00020001,D0
  744.             dc.w                $ABFE
  745.         EndM
  746.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  747.         IMPORT_CFM_FUNCTION GXGetAvailableJobFormatModes
  748.     ENDIF
  749.  
  750. ;
  751. ; extern OSErr GXSetPreferredJobFormatMode(gxJobFormatMode theFormatMode, Boolean directOnly)
  752. ;
  753.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  754.         Macro
  755.         _GXSetPreferredJobFormatMode
  756.             move.l              #$00020002,D0
  757.             dc.w                $ABFE
  758.         EndM
  759.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  760.         IMPORT_CFM_FUNCTION GXSetPreferredJobFormatMode
  761.     ENDIF
  762.  
  763. ;
  764. ; extern OSErr GXPrintingAlert(long iconId, long txtSize, long defaultTitleNum, long cancelTitleNum, long textLength, Ptr pAlertMsg, StringPtr actionTitle, StringPtr title2, StringPtr title3, StringPtr msgFont, ModalFilterUPP filterProc, short *itemHit, StringPtr alertTitle)
  765. ;
  766.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  767.         Macro
  768.         _GXPrintingAlert
  769.             move.l              #$00020003,D0
  770.             dc.w                $ABFE
  771.         EndM
  772.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  773.         IMPORT_CFM_FUNCTION GXPrintingAlert
  774.     ENDIF
  775.  
  776. ;
  777. ; extern OSErr GXGetPrintingAlert(long alertResId, ModalFilterUPP filterProc, short *itemHit)
  778. ;
  779.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  780.         Macro
  781.         _GXGetPrintingAlert
  782.             move.l              #$00020004,D0
  783.             dc.w                $ABFE
  784.         EndM
  785.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  786.         IMPORT_CFM_FUNCTION GXGetPrintingAlert
  787.     ENDIF
  788.  
  789.  
  790. ;
  791. ; extern OSErr GXFetchDTPData(Str31 dtpName, OSType theType, long theID, Handle *theData)
  792. ;
  793.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  794.         Macro
  795.         _GXFetchDTPData
  796.             move.l              #$00020005,D0
  797.             dc.w                $ABFE
  798.         EndM
  799.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  800.         IMPORT_CFM_FUNCTION GXFetchDTPData
  801.     ENDIF
  802.  
  803. ;
  804. ; extern OSErr GXWriteDTPData(Str31 dtpName, OSType theType, long theID, Handle theData)
  805. ;
  806.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  807.         Macro
  808.         _GXWriteDTPData
  809.             move.l              #$00020006,D0
  810.             dc.w                $ABFE
  811.         EndM
  812.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  813.         IMPORT_CFM_FUNCTION GXWriteDTPData
  814.     ENDIF
  815.  
  816. ;
  817. ; extern OSErr GXHandleChooserMessage(gxJob *aJob, Str31 driverName, long message, long caller, StringPtr objName, StringPtr zoneName, ListHandle theList, long p2)
  818. ;
  819.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  820.         Macro
  821.         _GXHandleChooserMessage
  822.             move.l              #$00020007,D0
  823.             dc.w                $ABFE
  824.         EndM
  825.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  826.         IMPORT_CFM_FUNCTION GXHandleChooserMessage
  827.     ENDIF
  828.  
  829.     ENDIF ; __GXPRINTERDRIVERS__ 
  830.  
  831.